package fr.generali.accueilclient.gwt.client.ui.common.message;

import java.util.HashSet;
import java.util.Set;

/**
 * Un message est consitué d'une chaine de caractère représentant le message principal et<br>
 * d'un certain nombre de causes.
 */
public class Message {
    
    /** Le message principal */
    private String message;
    /** Les causes en relation avec le message principal*/
    private Set<String> causes;
    
    public Message(String message) {
        this.message = message;
    }
    
    public Message(String message, Set<String> causes) {
        this.causes = causes;
    }
    
    /**
     * Permet d'ajouter une cause à la liste.<br>
     * S'il n'existe aucune cause, une nouvelle liste es créée<br>
     * @param cause : La cause à ajouter
     */
    public void addCause(String cause) {
        if(causes == null) {
            causes = new HashSet<String>();
        }
        causes.add(cause);
    }
    
    /**
     * Indique s'il existe des causes pour ce message.<br>
     * @return vrai s'il existe au moins une cause pour ce message.
     */
    public boolean hasCauses() {
        return causes != null && !causes.isEmpty();
    }
    
    public String getMessage() {
        return message;
    }
    
    public Set<String> getCauses() {
        return causes;
    }
}
